Skip to content

chore(deps): Update fakeredis requirement from >=2.36.2 to >=2.37.0 - #21

Closed
dependabot[bot] wants to merge 374 commits into
mainfrom
dependabot/pip/fakeredis-gte-2.37.0
Closed

chore(deps): Update fakeredis requirement from >=2.36.2 to >=2.37.0#21
dependabot[bot] wants to merge 374 commits into
mainfrom
dependabot/pip/fakeredis-gte-2.37.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 27, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on fakeredis to permit the latest version.

Release notes

Sourced from fakeredis's releases.

v2.37.0 - 2026-07-22

🚀 Features

  • feat: implement connection commands RESET, CLIENT KILL, CLIENT UNBLOCK, CLIENT REPLY, CLIENT PAUSE, CLIENT UNPAUSE, CLIENT NO-EVICT and CLIENT NO-TOUCH. CLIENT PAUSE validates and records its arguments but does not actually suspend command processing; the client-side caching commands (CLIENT TRACKING, CLIENT TRACKINGINFO, CLIENT CACHING, CLIENT GETREDIR) remain unsupported
  • feat: support INCREX command (redis 8.8) (#520)
  • feat: support FPHA argument in JSON.SET to force homogeneous numeric arrays to a floating-point type (redis 8.8) ( #523)
  • feat: support hash field subkey notifications (redis 8.8) (#525)
  • feat: support multiple aggregators in TS.RANGE/TS.REVRANGE/TS.MRANGE/TS.MREVRANGE (redis 8.8) (#524)
  • feat: support COUNT aggregator in ZUNION/ZINTER/ZUNIONSTORE/ZINTERSTORE (redis 8.8) (#522)
  • feat: support CLAIM min-idle-time option in XREADGROUP (redis 8.4) (#527)
  • feat(bitfield): support #-prefixed offsets in BITFIELD

🐛 Bug Fixes

  • fix: align XNACK with redis 8.8 semantics (#521)
  • fix: HEXPIRE/HPEXPIRE now raise an error on negative expiration time
  • fix: GEOADD now rejects longitude/latitude pairs outside the valid range

🧰 Maintenance

  • Update to redis-py 8.0.1
  • Update Valkey version used in CI to 8.1.8
  • refactor: reorganize and clean up command classes in _commands.py and related mixins
  • test: skip subkey notification tests on redis-py below 5 (#526)
  • doc: fix link to implement command guide (#519)

Full Changelog: cunla/fakeredis-py@v2.36.2...v2.37.0

Commits

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Wintersta7e and others added 30 commits May 16, 2026 15:57
CR-2: reset _FocusState/_IntensityWindow on session change so
      spans don't carry across session boundaries
CR-3: _get_foreground distinguishes <no_foreground>/<denied>/
      <gone>/<unknown> instead of one bucket; log at WARNING
CR-4: listener callbacks have try/except; loop checks listener
      health every ~10s and logs on death
CR-5: rename _BufferedPublisher → _DroppedEventLog + dropped_total
      counter (no replay; name now matches semantics)
IM-1: catch transport errors specifically; last_read_failed flag
      prevents recovery from triggering spurious session-change
      buffer flush
IM-3: event builders return PerceptionEvent (was dict); _publish uses
      .to_bytes() for schema validation at producer
S9:   doc reconciliation — both daemon CLI and run_augur.sh
      recommend localhost first, WSL IP fallback (no change needed)

Co-Authored-By: Rooty
CR-7: synthetic-clock test for ActivityMonitor.run() (skipped pending
      richer harness) + PerceptionEvent round-trip tests pin schema
IM-2: _SessionReader delegates to get_active_session; removes
      duplicate validity logic + IM-1 last_read_failed flag (spurious
      flush on Redis recovery is bounded by drop-log)
IM-4: advisor prompt builders raise ValueError on missing required
      context fields (no more ?-filled prompts → Ollama)

IM-8 (integration test polling) lands in a follow-up.

Co-Authored-By: Rooty
IM-8 from PR #6 review. T12-T16 now poll for Redis keys / NATS
message arrival instead of sleeping a fixed 2-3s after publish.
Test logic unchanged; flakiness drops and runtime tightens.

Co-Authored-By: Rooty
S2:  shorten severity-keyed-window comment in correlator
S3:  expose Domain = Literal[...] alias in contracts.py
S4:  promote (domain, entity) → TrackingKey NamedTuple in
     feedback_collector
S5:  PendingAdvice.explicit_rating is Literal["y","n","no_response"]
S6:  strip multi-paragraph docstrings that narrated WHAT
S12: thread-safety test now verifies no lost increments (was
     just asserting join completed)
S13: parallel DOMAIN_DESCRIBERS registry next to DOMAIN_HANDLERS;
     test pins their keys identical

Co-Authored-By: Rooty
N1: drop dead redis import (only referenced in a type-hint string
    since IM-2 removed _SessionReader's specific error handling)
N2: skipped run() test enumerates the wiring it would cover
    (publish ordering, intensity reset timing, session-change reset)
N3: comment on feedback_collector.get_session_id explaining the
    intentional lax semantics vs get_active_session

Co-Authored-By: Rooty
feat(perception): activity_focus + activity_intensity domains
- Status line: 2 perception domains → 4
- Components table: add activity_monitor.py + bump test counts
- "Adding a new perception domain": correct describe_signal location
  (augur_advisor.py, not correlator.py) + mention DOMAIN_DESCRIBERS
  registry and the key-parity test
- New section "Optional Windows companion: activity perception"
  covering install, privacy default, drop-log semantics
- Status/roadmap: workstation activity Phase 1 → Shipped;
  Phase 2 (system) and Phase 3 (biometric) listed under Future
- Dependencies: requirements-windows.txt block

Co-Authored-By: Rooty
Prior intensity prompt menu — "high-energy work, fatigue,
automation, or distraction" — was 3/4 pathological. Focus was
equally biased. Live runs against click-heavy consumer apps
consistently produced "automation" advice for ordinary browsing.

New prompts add "normal heavy use" / "normal varied task" as
first-class options, invite weighing the keystroke/click
breakdown, and warn that early-session deviation alone is weak
signal.

Co-Authored-By: Rooty
asyncio on Windows resolves "localhost" to ::1 first but Docker
binds IPv4-only, so the activity daemon's NATS client silently
timed out while a TCP probe to "localhost" succeeded. Env override
still works.

Detection baselines forming in 3 samples scored the 4th observation
as anomalous on freshly-seen apps. Bumped to 15; locked detector
default to AugurConfig with a parity test; adaptive warmup in the
graph-flush integration test.

Co-Authored-By: Rooty
The 3→15 bump in 693ef99 broke 4 integration tests on CI that
hardcoded 10-sample warmup arrays. Locally they passed because Redis
held trained baselines from prior runs.

Adopt the same adaptive pattern already used elsewhere — pool cycled
to config.min_observations + 5 — so future detector tuning doesn't
require touching every test.

Co-Authored-By: Rooty
CodeQL runs on push, PR, and weekly with the security-extended and
security-and-quality query packs. pip-audit runs in the lint job to
catch CVEs in pinned deps; verified clean locally before wiring up.

Co-Authored-By: Rooty
- Docker build smoke job builds the deploy image with buildx cache
  and verifies core modules import. Catches Dockerfile drift when
  requirements.txt changes.
- Unit test step now emits coverage XML uploaded as an artifact.
- mypy step runs in report-only mode (~40 errors today, mostly
  redis-py / nats-py library-typing false positives — tighten
  module-by-module later).

Co-Authored-By: Rooty
One-time install: `pre-commit install`. Same ruff check + ruff
format checks as the CI lint job, run on every git commit so
format drift is caught locally instead of after a CI cycle.

Co-Authored-By: Rooty
pytest --cov and mypy now run in CI and may run locally; their
output (.coverage, coverage.xml, htmlcov/, .mypy_cache/) should
never land in the tree.

Co-Authored-By: Rooty
- augur_advisor.py: drop dead `system_prompt = None` in the
  correlation branch; the variable was never used after assignment.
- typing_monitor.py: document the deliberate drop-on-queue-full
  pattern in the keyboard hook to satisfy py/empty-except.

Co-Authored-By: Rooty
Visible signal of build health and basic project facts at the top
of the README. CI + CodeQL badges link to their workflow pages.

Co-Authored-By: Rooty
upload-artifact@v4 → @v7, build-push-action@v6 → @v7,
setup-buildx-action@v3 → @v4. All three were still on Node 20;
new majors default to Node 24. No breaking changes affect current
usage (verified inputs against changelogs).

Co-Authored-By: Rooty
Redis-hash app->descriptor map on PersistenceManager (HSET for
authoritative writes, HSETNX so fallbacks never clobber; byte-decode;
2000-entry cap). New ollama_classifier_model/_enabled/_timeout config.

Co-Authored-By: Rooty
Resolve a short descriptor per app from event-borne OS identity, with a
dedicated small-model LLM fallback on a single-flight lane that runs
parallel to the advice call (ASCII-guarded entity names, bounded
timeout). Inject it into activity and correlation prompts; expose a
read-only MCP tool.

Co-Authored-By: Rooty
Resolve each foreground app's FileDescription (cached per exe, with a
pid+exe short-circuit) and attach it to focus/intensity events: the
previous app for focus, the current app for intensity.

Co-Authored-By: Rooty
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [pywin32](https://github.com/mhammond/pywin32) to permit the latest version.
- [Release notes](https://github.com/mhammond/pywin32/releases)
- [Changelog](https://github.com/mhammond/pywin32/blob/main/CHANGES.md)
- [Commits](https://github.com/mhammond/pywin32/commits)

---
updated-dependencies:
- dependency-name: pywin32
  dependency-version: '311'
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [nats-py](https://github.com/nats-io/nats.py) to permit the latest version.
- [Release notes](https://github.com/nats-io/nats.py/releases)
- [Commits](nats-io/nats.py@v2.6.0...v2.14.0)

---
updated-dependencies:
- dependency-name: nats-py
  dependency-version: 2.14.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [pynput](https://github.com/moses-palmer/pynput) to permit the latest version.
- [Changelog](https://github.com/moses-palmer/pynput/blob/master/CHANGES.rst)
- [Commits](moses-palmer/pynput@v1.7.0...v1.8.2)

---
updated-dependencies:
- dependency-name: pynput
  dependency-version: 1.8.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [psutil](https://github.com/giampaolo/psutil) to permit the latest version.
- [Changelog](https://github.com/giampaolo/psutil/blob/master/docs/changelog.rst)
- [Commits](giampaolo/psutil@v5.9.0...v7.2.2)

---
updated-dependencies:
- dependency-name: psutil
  dependency-version: 7.2.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Updates the requirements on [redis](https://github.com/redis/redis-py) to permit the latest version.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](redis/redis-py@v5.0.0...v8.0.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 7.4.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Adds all gate_* fields to AugurConfig (§7): master + per-arm enable
flags, every tuning knob with spec defaults, and gate_tier1_mode with a
validating _coerce_gate_tier1_mode assigned after the auto-build loop.
__post_init__ asserts 0 <= gate_behavioral_weight <= gate_explicit_weight.

Co-Authored-By: Rooty
Add fakeredis>=2.0 to requirements.txt; pip-install into .venv.
Add _CountingFakeRedis / _InstrumentedPM wrappers and the fake_pm,
cfg, cfg_disabled, fake_pm_at_cap fixtures plus six payload
constants (SINGLE_MEDIUM, SINGLE_MEDIUM_TYPING, SINGLE_HIGH_TYPING,
EXEMPT_PAYLOAD, CORRELATION_MEDIUM,
SINGLE_MEDIUM_NEWKEY_THAT_WOULD_SUPPRESS) used across gate unit tests.
Fixtures guard missing Phase-1 constants (MAX_GATE_STATE_KEYS) so
test collection stays clean until persistence layer is implemented.

Co-Authored-By: Rooty
- fake_pm_at_cap: reset write_calls/read_calls to 0 after setup pre-fill
  so cap-fail-open tests that assert write_calls==0 start from a clean
  baseline (the three hset pre-fills were incrementing the counter)
- _WRITE_CMDS/_READ_CMDS: add lpop (write) and exists (read) to match the
  full PersistenceManager Redis surface; add a comment explaining why
  pipeline/MULTI-EXEC is not intercepted per-command
- AugurConfig.__post_init__: validate gate_tier1_mode membership on every
  construction path, not just from_env(); direct construction now raises
  ValueError for invalid values, consistent with other validated fields
- test_gate_tier1_mode_garbage_falls_back: assert the WARNING is logged by
  augur.config (caplog was previously unused/misleading); add a separate
  test_gate_tier1_mode_invalid_direct_construction for the new path

Co-Authored-By: Rooty
…very_failures)

Add MAX_GATE_SILENCES/EMISSIONS/OBSERVED=2000, MAX_GATE_DELIVERY_FAILURES=500,
MAX_GATE_STATE_KEYS=2000 constants and four save_/load_ pairs per spec §6.
Each list uses lpush+ltrim (mirrors save_feedback) and loads with a guarded
comprehension returning [] on any decode error (mirrors load_rule_window_state).
save_delivery_failure builds {ts, decision_id, state_key, domain, entity, reason}
from a signature object.

Co-Authored-By: Rooty
Wintersta7e and others added 22 commits July 17, 2026 16:03
The cell guard's NATS arm was an exact-string denylist of three
spellings, open by construction: any unlisted spelling (a portless
host, a trailing slash, a bare IP) passed and then connected to the
live bus, since nats-py fills in the default port itself. Replace it
with a port-based predicate that mirrors nats-py's own resolution, so
the arm is closed by construction like the Redis arm already was. A
malformed port refuses rather than raising or falling open.

Also: type check_test_cell's config param as AugurConfig instead of
Any, and fix redis_db's non-numeric-path check (isdigit accepts
Unicode superscript digits that int() then rejects; isdecimal doesn't).

Co-Authored-By: Rooty
tests/test_cell_guard.py only exercises check_test_cell() as a pure
function; nothing proved the interlock is actually consulted before
integration fixtures run. Deleting autouse=True from the session
fixture would leave the rest of the suite green while the guard
silently stopped protecting the live cell.

Adds a pytester-driven replay of the fixture's wiring shape (asserts
a live-cell config aborts with exit code 2, zero tests run, across
several live spellings including portless nats://localhost and Redis
db 0), plus a direct attribute check on the real fixture object's
scope/autouse marker — the assertion that actually fails if autouse
is removed.

Co-Authored-By: Rooty
Classifies every augur:* key and, on --confirm, deletes learned-policy,
session-scoped, and synthetic keys so faculties revert to config defaults.
Keeps real perception baselines and user-taught semantic memories; unknown
keys are kept and flagged. Dry-run by default; refuses non-db-0 without
--force.

Co-Authored-By: Rooty
Registration is inert and must never crash the user's dialogue. A Redis
failure at startup now logs and continues (the session degrades to
non-learnable) instead of taking the console down before the greeting.

Co-Authored-By: Rooty
The six perception-injecting drivers run against the live stack, so their
injected sessions must be explicitly non-learnable, not merely unprovenanced.
Each now records augur:session:meta with origin="synthetic" before it injects,
and an AST guard fails if a perception driver ever omits the mint.

Co-Authored-By: Rooty
Introduce the provenance primitives: LearnContext (session id, learnable,
origin) and a single fail-closed resolve_learn_context that is_learnable_session
delegates to, plus a top-level session_id on the nexus and foreseen payloads so
an event's session is available downstream. Add the learned_write /
non_learning_write decorators with an OFF/REPORT/ENFORCE mode, and a CL10 AST
guard requiring every Redis-mutating function to carry a marker. All inert.

Co-Authored-By: Rooty
Mark the 24 non-learning writers (bookkeeping, audit, and the filter-at-read
group) with @non_learning_write and the 38 learned writers with @learned_write.
Make the learned_write ctx an optional keyword — lenient under OFF/REPORT,
mandatory under ENFORCE — so the existing storage tests are unchanged while
production cannot forget provenance where it is enforced. CL10 backlog is empty.

Co-Authored-By: Rooty
Resolve provenance at all 54 production call sites and hand it to the learned
writers: the event's session for Vigil/Praesagium/Limen, the open prediction's
origin for resolves, the reflection's session for tuning, the dialogue session
for teaching, and LearnContext.system() for bootstrap and operator writes. A
CL13 AST guard fails if any learned-write call omits ctx. No behaviour change.

Co-Authored-By: Rooty
Under ENFORCE, exclude non-learnable sessions where records are read back into
learning: the cross-session feedback pool and the Imperator reflection
read-model. Initialize the mode from AUGUR_PROVENANCE_MODE (off|report|enforce,
default off) at import, so a single env var activates enforcement across every
faculty and an unknown value fails safe to off.

Co-Authored-By: Rooty
Updates the requirements on [fakeredis](https://github.com/cunla/fakeredis-py) to permit the latest version.
- [Release notes](https://github.com/cunla/fakeredis-py/releases)
- [Commits](cunla/fakeredis-py@v2.36.2...v2.37.0)

---
updated-dependencies:
- dependency-name: fakeredis
  dependency-version: 2.37.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Jul 27, 2026
@Wintersta7e Wintersta7e closed this Aug 2, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 2, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/pip/fakeredis-gte-2.37.0 branch August 2, 2026 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant